Hybris UX Api
POST Customer
Post Customer
This API will allows you to create a Customer entity.
URL
http://[localhost]:[port]/ecom-ux/v1/{businessId}/customer
URL PARAMS
name | type | description | required |
---|---|---|---|
businessId | String | 2 letter ISO 3166 country code (PR,JM,PA,CR) identifying the business unit. | Y |
Headers
name | type | description | required |
---|---|---|---|
client-id | String | The client-id identifying the channel. | Y |
client-secret | String | Password associated with the client-id. | Y |
X-Correlation-ID | String | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | N |
channelId | String | Channel to identify the business group Default value : ECOM | N |
lob | String | The Line of Business Identifier Ex: FIXED, PREPAID, POSTPAID | N |
Data Model - Request
field name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|---|---|---|
name | String | The full name of the customer in the format FirstName LastName (with space in between) | Y (PA,JM,PR,CR) |
contactMedium[] | Array | Indicates the contact medium that could be used to contact the party. | Y |
contactMedium[].mediumType | String | Type of the contact medium, such as: Email, Telephone, Address, Email | N (PA,PR,JM,CR) |
contactMedium[].preferred | Boolean | If true, indicates that is the preferred contact medium | N (PA,PR,JM,CR) |
contactMedium[].characteristic | Object | Any additional characteristic(s) of this contact medium | Y |
contactMedium[].characteristic.street1 | String | Describes the street | Y (PR,PA,CR) N (JM) |
contactMedium[].characteristic.street2 | String | Complementary street description | Y (JM,PA,CR) N (PR) |
contactMedium[].characteristic.city | String | City name | Y (CR) N (PA,PR,JM) |
contactMedium[].characteristic.stateOrProvince | String | State or province | Y (CR) N (PA,PR,JM) |
contactMedium[].characteristic.postCode | String | Post code | Y (PR) N (PA,JM) N/A (CR) |
contactMedium[].characteristic.country | String | Country name | N (PA,PR,JM,CR) |
contactMedium[].characteristic.phoneNumber | String | The primary phone number of the contact | Y (CR) N (PA,PR,JM) |
contactMedium[].characteristic.contactType | String | The type of contact, for example: mobile, home | Y (CR) N (PA,PR,JM) |
contactMedium[].characteristic.emailAddress | String | Full email address in standard format | Y (PR) N (PA,CR,JM) |
characteristic[] | Array | Describes a given characteristic of an object or entity through a name/value pair | Y |
characteristic[]. name | String | Characteristics of the entity | Y |
characteristic[]. value | String | Value of the characteristics | Y |
characteristic[].valueType | String | Value type of the characteristics | N |
characteristics
field name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
---|---|---|---|---|
characteristic[].name=='dateOfBirth' | String | Date of Birth format:{yyyy-MM-dd} | Y (PR) N (PA,JM) N/A (CR) | PA,JM,PR: {"name": "dateOfBirth", "value": "2000-06-12"} |
characteristic[].name=='title' | String | Salutation of customer Possible Values: Mr, Mrs | N (PA,PR,JM) N/A (CR) | PA,JM,PR: {"name": "title", "value":"Mr"} |
characteristic[].name=="salutation" | String | Salutation | N (PR) N/A (JM,PA,CR) | PR: {"name": "salutation", "value":"U"} |
characteristic[].name=='gender' | String | Gender of customer Possible Values for CR: MASCULINO, FEMENINO, INDEFINIDO Possible Values for PA,JM: M,F,U | Y (CR) N (PA,JM) N/A (PR) | CR: {"name": "gender", "value":"MASCULINO"} PA,JM: {"name": "gender", "value":"M"} |
characteristic[].name=='type' | String | Type of customer Possible Values: RES | Y (PA,PR,JM) N/A (CR) | PA,PR,JM: {"name": "type", "value":"RES"} |
characteristic[].name=='companyCode' | String | Company code | N (PA,JM) N/A (CR,PR) | PA: {"name": "companyCode", value: "CWP"} JM: {"name": "companyCode", value: "TOJ"} |
characteristic[].name=='idProof' | String | Id proof of customer CEDULA JURIDICA and INSTITUCIONES AUTÓNOMAS are applicable for B2B | Y (CR) N (PA,PR,JM) | CR: {"name": "idProof", value:"0106070524"} PA: {"name": "idProof", "valueType":"C", value:"8-997-999"} JM: {"name": "idProof", "valueType":"TRN", value:"E1134517"} PR: {"name": "idProofType", "valueType": "DL", "value": "22222"} |
characteristic[].name=='sourceEPC' | String | Backend source Possible Values: CSG, LIBERATE, CERILLION | Y (PA,PR,JM) N/A (CR) | JM,PA: {"name": "sourceEPC", "value": "LIBERATE"} PR: {"name": "sourceEPC", "value": "CSG} |
characteristic[].name=='nationality' | String | Backend source | N (PA) N/A (CR,JM,PR) | PA: {"name": "nationality", "value": "PANA"} |
characteristic[].name=='employmentStatus' | String | Employment Status | N (PA) N/A(CR,JM,PR) | PA: {"name":"employmentStatus", "value": "N"} |
characteristic[].name=='dlstate' | String | Business unit | N (PR) N/A (PA,CR,JM) | PR: {"name": "dlstate", "value":"PR"} |
characteristic[].name=='privacy' | String | privacy | N (PR) N/A (PA,JM,CR) | PR: {"name": "privacy", "value":"N"} |
characteristic[].name=='firstName' | String | First Name | Y (PR,CR) N/A (PA,JM) | PR,CR: {"name": "firstName", "value":"GILBERTO"} |
characteristic[].name=='lastName' | String | Last Name | Y (PR,CR) N/A (PA,JM) | PR,CR: {"name": "lastName", "value":"ALMEMAN"} |
characteristic[].name=='idProofType' | String | Id proof type of customer Possible Values for CR: CEDULA FISICA, PASAPORTE, CEDULA JURIDICA, INSTITUCIONES AUTÓNOMAS,CEDULA RESIDENCIA | Y (CR) N/A (PA,PR,JM) | CR: {"name": "idProofType", "value": "CEDULA FISICA"} |
characteristic[].name=='amnistia' | String | amnistia Boolean Y or N | N (CR) N/A (PA,PR,JM) | CR: {"name": "amnistia", "value":"N"} |
characteristic[].name=='fraudCategory' | String | Fraud clasification field Possible Values for CR: Oro,Plata, Bronce | N (CR) N/A (PA,PR,JM) | CR: {"name": "fraudCategory", "value": "Oro"} |
characteristic[].name=='customerType' | String | Type of customer only "RESIDENCIAL" is applicable for B2C Possible Values for CR: RESIDENCIAL, MICROEMPRESA, PEQUEÑA EMPRESA, PROGRAMA HOGARES CONECTADOS, MEDIANA EMPRESA, GRAN EMPRESA, EMPLEADO,CORPORATIVO,HOTEL | Y (CR) N/A (PA,PR,JM) | CR: {"name": "customerType", "value": "RESIDENCIAL"} |
characteristic[].name=='customerCategory' | String | Customer category Possible Values for CR: CLIENTE VIP, COMERCIAL, EMPRESARIAL, PYMES, CLIENTE LEAL, PHC QUINTIL 1, PHC QUINTIL 2, PHC QUINTIL 3, CLIENTE POTENCIAL, CLIENTE BASICO | N (CR) N/A (PA,PR,JM) | CR: {"name":"customerCategory", "value":"CLIENTE VIP"} |
characteristic[].name=='role' | String | Role of customer Possible Values for CR: ABOGADO DE LA EMPRESA, ADMINISTRADOR, DUEÑO, ESPOSA, ESPOSO, JEFE DE SISTEMAS, COBRO, ENCARGADO OPERACIONES, ENCARGADO TECNICO,GERENTE FINANCIERO | Y (CR) N/A (PA,PR,JM) | CR: {"name": "role", "value":"DUENO"} |
characteristic[].name=='lastName2' | String | Second last name | N (CR) N/A (PA,PR,JM) | CR: {"name": "lastName2", "value": "Tosty"} |
characteristic[].name=='district' | String | District in Customer address | Y (CR) N/A (PA,PR,JM) | CR: {"name": "district", "value":"PUNTARENAS"} |
characteristic[].name=='lob' | String | Line of business | Y (CR) N/A (PA,PR,JM) | CR: {"name": "lob", "value":"FIXED"} |
characteristic[].name=="commercialName" | String | Commercial Name Applicable for B2B only. Possible Values for CR: MICROEMPRESA, PEQUEÑA EMPRESA, MEDIANA EMPRESA,GRAN EMPRESA, INMOBILIARIO | N (CR) N/A (PA,PR,JM) | CR: {"name":"commercialName", "value":""} |
characteristic[].name=="hotelType" | String | Hotel Type Applicable for B2B only. Possible Values for CR: AEROPUERTO, PENSION, APARTOTEL, EJECUTIVO, CASINO, CLUB, DE PASO, MONTAÑA, VACACIONAL | N (CR) N/A (PA,PR,JM) | CR: {"name":"hotelType", "value":"AEROPUERTO"} |
characteristic[].name=="hotelChain" | String | Hotel Chain Applicable for B2B only. Possible Values for CR: AM RESORT, BARCELO HOTELS & RESORT, C.H.E GROUP PLC, ENJOY HOTELS, ESPLENDOR, INTERCONTINETAL HOTELS GROUP, SOL MELIA, STARWOOD HOTELS & RESORT WORLD, BEST WESTERN INTERNATIONAL, CARLSON REZINDOR HOTEL GROUP, CARLSON HOSPITALITY WORLDWIDE, CHOICE HOTELS INTERNACIONAL, FIESTA HOTEL GROUP, FOUR SEASONS HOTELS & RESORTS, GLOBAL HYATT CORP, ACOMETIDA INSTALADA, AEREA EXPUESTA, DUCTO CON PIOLA, DUCTO SIN PIOLA ,HILTONS HOTELS CORP, HOSPITALITY INTERNATIONAL, MARRIOT INTERNACIONA,L NINGUNA, OCCIDENTALS HOTELS, RIU HOTELS, WYNDHAM WORLDWIDE | N (CR) N/A (PA,PR,JM) | CR: {"name":"hotelChain", "value":"AM RESORT"} |
characteristic[].name=="taxIdProof" | String | taxIdProof | N(PR) N/A (PA,PR,JM) | PR: {"name": "taxIdProof", "valueType": "SSN", "value":"addMu==="} |
Data Model - Response
field name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|---|---|---|
Id | String | Customer id | Y (PA,JM,PR,CR) |
account[].id | String | The associate Account number | Y (PA,JM) N/A (PR,CR) |
name | String | Customer name | Y (CR) N/A (PA,JM,PR) |
customerNo | String | Customer number | Y (JM) N/A (PA,PR,JM) |
@type | String | type | Y (CR) N/A (PA,PR,JM) |
characteristics
field name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
---|---|---|---|---|
characteristic[].name=="addressId" | String | Customer address id | Y (CR) N/A (PR,JM,PA) | CR: {"name":"addressId", "value":"1-2F741ZW"} |
characteristic[].name=="contactId" | String | Customer contact id | Y (CR) N/A (PR,JM,PA) | CR: {"name":"contactId", "value":"1-2F741ZY"} |
characteristic[].name=="businessUnit" | String | business unit | Y (PR) N/A (CR,JM,PA) | PR: {"name:"businessUnit","value":"9900"} |
characteristic[].name=="locationId" | String | Customer location id | Y (PR) N/A (CR,JM,PA) | PR: {"name:"locationId","value":"00923122700050"} |
characteristic[].name=="dropType" | String | drop type | Y (PR) N/A (CR,JM,PA) | PR: {"name:"dropType","value":"COAX"} |
characteristic[].name=="jobType" | String | job type | Y (PR) N/A (CR,JM,PA) | PR: {"name:"jobType","value":"RC"} |
Key considerations
PA Implementation
- name field is a concatenation of firstName and surName.
- idProof valueType represents the identity type of the customer ex Passport(PP),Cedula(C).
- dateOfBirth format must be YYYY-MM-DD.
- characteristic[].name = "type" must have a value of 'RES'.
- characteristic[].name = "sourceEPC" must have a value of 'LIBERATE'.
- companyCode value should be 'CWP'.
- Please refer the Request and response examples with following URL - [Hybris UX Api](https://anypoint.mulesoft.com/exchange/portals/cable-and-wireless/c03653f5-9c46-4e55-bf97-5cef1442bfbf/ecom-ux/minor/1.0/console/method/%2334428/)
CR Implementation
**note**: customerType = "HOTEL" is not in scope and routing is based on lob passed in request body
- New B2C customers are in scope.
- name field in the request is a combination of firstName + lastName + lastName2 from characteristics
- Address fields values should be in Upper case
- No data validation is present in the Mulesoft
- Error message from the backend system is captured in the error response.
- The legacy system that consumes the creation of the customer must respect the values of the lists of values configured in the fields.
- The customer creation web service will only allow the creation of 1 customer at a time.
- The value for the "Identification number" field may be sent with or without hyphens (-), always respecting the minimum and maximum number of characters and other format validations.
- The customer that is created will have as default value in the Status field = "PROSPECT". The proper flow of the Order makes the corresponding change.
- The position and organization of the user consuming the integration will be assigned by default.
- The customer creation process will create an address record with the information provided, this record will be assigned as the main address. The system that consumes the web service must send the correct values from the province, canton, district and neighborhood value lists.
- Mulesoft is converting values to upper case as per the validation in siebel.
- The system will return an error code and message in case there is a problem creating and associating the new address and/or contact record, but the customer creation will not be interrupted. In the case of error (error in address or contact), the creation of these records will be done manually by the end user.
- Reprocessing of request is not possible if the customer entity creation is successful.-Refer Request and Response with Name CR-B2C-Contact Id(contactId), Row Id (id) and Address Id(addressId) are required to Create Agreement, settlementAccount and to create Order-amnistia value should be empty,when “idProofType = CEDULA FISICA” or PASAPORTE
PR Implementation
- name field is the concatenation of firstName and lastName
- DateOfBirth format must be yyyy-MM-dd
- characteristic[].name = "type" must have a value of 'RES'
- characteristic[].name = "sourceEPC" must have a value of 'CSG'
- emailAddress should be mandatory if contactMedium[].mediumType=="Email"
JM Implementation
##### Liberate
- DateOfBirth format must be yyyy-MM-dd.
- characteristic[].name = "type" must have a value of 'RES'
- characteristic[].name = "sourceEPC" must have a value of 'Liberate'
##### Cerillion
- characteristic[].name = "sourceEPC" must have a value of 'Cerillion'